الحمد لله وحده لاشريك له والصلاة والسلام على قائد الخلق سيدنا محمد وعلى آله وصحبه وكل الأنبياء والمرسلين ومن تبعهم واهتدئ بهداهم إلى يوم الدين ...(سبحانك لاعلم إلا علمتنا ، إنك العليم الحكيم )...وبعد
البيرل لغة مفسرة عالية المستوى كتبت على يد Larry Wall والعديد من المساهمين ممثل بالآلاف ولهذا الشخص الدور الاكبر في برمجة البيرل ، كان مبرمج أنظمة على المشاريع المتقدمة عمله الاساسي على النظام ودعم النظام واثناء عملة طور العديد من أدوات اليونكس مثل rn و patch و warp فبداء بالتفكير في إنشاء أداءة للعمل مع متطلابات المدراء وإدارة الاعداءات والسيطرة على النظام فعتبر المشكلة الرئيسية في ضبط الاعداءات حيث تكون قادرة على عرض تقارير للمشاكل والسيطرة عليها الا أن تم الاعلان عن اداءة جديدة في عام 1986 هذة الاداءة جعلت من تفكير المطورين والمبرمجين أكثر سهولة عما كان علية في السابق ، سميت في وقتها باسم زوجته "Gloria" ثم استبدلت فاصبحت باسم "Pearl" التي تعني اللؤلؤة في لغتنا العربية، تعرف اليوم "Perl" أختصاراً Piratical Extraction and Report Language ، عندما ظهرت كانت صفحات manual طولها 15 صفحة لكن البيرل كانت اسرع من sed و awk فنالت اعجاب الكثير من الناس قاموا بتطويرها وإصادراها على الانترنت
بداية البيرل في تطبيقات اليونكس منذ ذلك الحين الا ان أصبحت تستخدم على جميع أنظمة التشغيل تقريباُ فكل لغة لها مميزات عن الاخرى لكن البيرل فريدة من نوعها تمتاز بسهولة والمرونة لذلك تستطيع عمل الشيء نفسه بأكثر من طريقة فمهما كانت الطريقة التي تفكر بها ستجد أنك تحصل غالبا على ماتريده بالضبط على خلاف اللغات الاخرى التي لديها الصرامة للطريقة الصحيحة والطريقة الخاطئة ، يفضل استخدام عادات جيدة اثناء كتابة الشفرات لان ذلك هو طريقك لكتابة برامج يمكن ان يطلق عليها مصطلح "برامج نظيفة" على صعيد آخر ، تستطيع كتابة شفرات مشوشة غير مفهومة بمصطلح "برامج قذرة" Just another Perl hacker
، البيرل لديها المطورين والمبرمجين المعتمدين Perl Porters يسعون في شمولية المضمون واستخدام الأدوات السهلة الممكنة التي تجعلها بإكفاء العمل وأسرع في الترجمة والتحميل .
البيرل سهلة جداً ذات قدرات عالية ، لديها العديد من المميزات كأستخدمها عادتاً بديلاً لإدوات اليونكس كالغة الشل سكربت والادوات الاخرى كالـ sed و awk و grep ...الخ ، وتوفير برمجة الكائنات الموجهة إضافتاً الى العديد من الادوات الازمة للمبرمجين كاتعامل مع سطر الاوامر مباشراً وبرمجة صفحات الويب من جهه الخادم CGI وتوفير الكثير من مكتبات البرمجه الرسومية graphics Programming ودعم اغلب قواعـد البيانات ولم تحتكر على نوع معين وإليك بعض هذة الأنواع Oracle و SQL وMYSQL ... وأصبحت بيئة التطوير موحدة وعملية تكامل التطوير بين لغات البرمجة مباشرة تماما حتي انة يمكن مزج الشفرات في نفس البرنامج والاشتراك مع الالغات كالسي والجافا بالإضافة إلى استيعاب التقنيات الحديثة مثل XML وخدمات برمجة الشبكات وتم توحيد الكثير من الخطط الخاصة بالشبكة ، كذلك إستقلالية وقابلية التطبيق للنقل الى ارصفة مختلفة وهذا يعني ان اي برنامج يعمل على البيرل يعمل على أي رصيف (ونيدوز ، يونكس ، ماك ، حاسب الجيب ... ) يدعم بئية البيرل بدون أي تعديل على التطبيق ، لايقتصر هذا فقط بل ان البيرل منفتحه تحت رخصة GNU تحت بند المصدر المشترك shared Source التي توفر الشفرة المصدرية لجميع التقنيات .
الاساسيات
لكي ينفذ برنامج في البيرل تحتاج الى تحميل مفسر البيرل ActiveStates's حمله من الموقع www.activestate.us
وايضاً تحتاج الى محرر نصي تستطيع كتابة برنامج البيرل على الونيدوزباستخدم محرر DzSofts Perl تجده على الموقعwww.dzsoft.com او استخدم برنامج المفكره المتوفر في كل جهاز و اذا لم تناسبك اكتب في الجوجل "perl Editor" أو في الينكس باستخدم المحرار vi او Emacs او اي محرر اخر لديك
وعند حفظ البرنامج في ملف لابد أن يكون اسم الملف متبوعاً بامتداد ".pl" ليعطى المفسر بان ذلك ملف مكتوب بلغة بيرل ، فيما يلي المثال الاول لطباعة فاتحة العمل بسم الله الرحمن الرحيم
#!/usr/bin/perl -w print "In the name of Allah the most gracious and the most merciful\n";
قم بحفظ الملف filename.pl ولتشغيل السكربت يجب ان يعطى الى مفسر البيرل لتنفذ بكتابة الامر في المحث أو نافذة الاوامر command Window
>perl filename.pl
الشرح :
#!/usr/bin/perl يمثل البداية لكتابة برنامج في البيرل ، ويعطى بالخيار -w للتأكد من الخطأ وعموماً يستعمل لترتيب الاخطاء المحرجة وإظهار رسائل التحذيرات Warnings .
تخبر print لعرض النصوص بسم الله الرحمن الرحيم الموجودة بين علامات " "، وفي النهاية السطر وضعت الفاصلة المنقوطة ; لإنهاء الجملة لتخبر عن توقف القراءة في هذا الخط ، يعتبر المفسر الجملة غير منتهية اذا لم تضع فاصلة منقوطة في نهاية الجملة لكن في بعض الاوقات تكتب جملة على أكثر من سطر .
تعرف print بأنها دالة الخرج القياسية Standard Output التي تقوم بإظهار الجملة النصية وكذلك أي معلومات أو بيانات في نافذة الأوامر ، في الطباعة إن أردنا الانتقال إلى سطر جديد نطبع رمز خاصة "\n" الذي يعني انتقل إلى سطر جديد ، وهذا الرمز الخاص من ضمن مايعرف بإستكمال النصوص String Interpolation التي تعرف بأنها معالجة إدخال حرف إضافي الى الكلمة أو الى مجموعة من الحروف الى بلوك النص ، فهي فقط معالجة باتعويض عن متغير او حرف خاصة في النصوص وفيما يلي حالات اخرى
| الحرف الخاص | الحدث |
|---|---|
| \000..\377 | كود في الثماني |
| \a | الصافرة تقوم بصدار صوت من لوحة الام (في ASCII هي 7 ) |
| \b | الرجوع بمؤشر الكتابة الى الخلف بمسافة خلفية Backspace (في ASCII هي 8 ) |
| \c <chr> | السيطره على الحرف (مثال \cg أي تعني الضغط على ctrl-g ، في ASCII هي 7 ، وهو نفس \a ) |
| \e | الهروب من الحرف Escape (في ASCII هي 27 ) |
| \E | التأثير الى نهاية النص |
| \f | صفحة جديدة Form feed (في ASCII هي 12 ) |
| \l | حرف صغير للحرف التالي |
| \L | حروف صغيرة للجميع الى نهاية النص أو مايقابلها \E |
| \n | سطر جديد newline(في ASCII هي 10 على اليونكس ، 10+13 على الوندوز ) |
| \N{name} | A named character. |
| \Q | الهروب من اي حرف غير حرفي الى نهاية النص أو مايقابله \E |
| \r | العوده بمؤشر الكتابة إلى بداية السطر carriage return (في ASCII هي 13 ) |
| \t | عمل Tab أي 8 فراغات في الاتجاه الافقي (ASCII هي 8 ) |
| \u | وضع حرف كبير الى الحرف التالي |
| \U | وضع حروف كبيرة للجميع الى نهاية النص أو مايقابلها \E |
| \x<code> | كود ال ASCII 00 الى ff في السادس عشر |
| \x{<code>} | الكود في نظام ال UTF8 Unicode في السادس عشر |
| \\ , \$ , \@ , \" | تجاهل اي رمز بعد \ |
| \0..\7, \c, \x, and \N | فهم يحددون عامتاً ، فهي تأخذ ناتج الاحرف ويضمن على الذي يلية |
نجد بأن كل منهم لدية مايقابلة في جدول ASCII Table كقاعدة فأي شيء بين علامات الإقتباس لديه مايقابلة في الجدول ،ونلاحظ التاثير في الأحداث \L, \Q, \U على النص بالكامل الى ان ينتهي النص أو مايقابلها \E ، ومن الممكن أستخدام أستكملات النصوص مع التعبيرات المنتظمة سوف نناقشها لاحقاً بمشيئة الله
#!/usr/bin/perl -w print "Hello\tWorld\n\a";
هو اي شيء يقوم بالتأثير في الصفحة، حيث يشير الجزء white الى الصفحة المطبوعه وتشمل whitespace كالمسافة والسطر الجديد \r\t\n\f وهذة تستخدم لتحسين مظهرالصفحة . يمكننا ايضاً استعمال whitespace في التعابير المعقد ومع علامات الحصر مثل
print 1+2*(3*(rand(4)-5))+6; print 1 + 2 * ( 3*(rand(4)-5) ) + 6;
ولايمكن استعمالها في اسماء المتغيرات فمثلاً المثال التالي يظهر خطأ
$sca lar; # غير شرعي